class Solution {
public:
    int massage(vector<int>& nums) {
        //处理边界
        int n=nums.size();
        if(n==0) return 0;
        if(n==1) return nums[0];
        if(n==2) return max(nums[0],nums[1]);
        //dp表
        vector<int> dp(n+1);
        //初始化
        dp[1]=nums[0],dp[2]=nums[1];
        for(int i=3;i<=n;i++)
        {
            dp[i]=max(dp[i-3],dp[i-2])+nums[i-1]; //不选择相邻得
        }
        int ret=0;
        //找到最长预约时长
        for(int i=1;i<=n;i++)
        {
            ret=max(dp[i],ret);
        }
        return ret;
    }
};